package com.jeff.huawei.practice;

import java.util.*;
import java.util.stream.Stream;

/**
 * 一个有N个选手参加比赛，选手编号为1~N（3<=N<=100），有M（3<=M<=10）个评委对选手进行打分。
 * <p>
 * 打分规则为每个评委对选手打分，最高分10分，最低分1分。
 * <p>
 * 请计算得分最多的3位选手的编号。
 * <p>
 * 如果得分相同，则得分高分值最多的选手排名靠前
 * <p>
 * (10分数量相同，则比较9分的数量，以此类推，用例中不会出现多个选手得分完全相同的情况)。
 */
public class Second1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in).useDelimiter("[,\n]");
        int m = sc.nextInt(); // 评委数量
        int n = sc.nextInt(); // 选手数量
        if (m < 3 || m > 10 || n < 3 || n > 100) { // 判断输入是否合法
            System.out.println("-1");
            return;
        }
        // 评委打分
        int[][] scores = new int[m][n];
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                scores[i][j] = sc.nextInt();
                if (scores[i][j] > 10 || scores[i][j] < 1) { // 判断队员得分是否合法
                    System.out.println("-1");
                    return;
                }
            }
        }
        HashMap<Integer, Integer[]> players = new HashMap<>();
        for (int j = 0; j < n; j++) {
            Integer[] playerScores = new Integer[m];
            for (int i = 0; i < m; i++) {
                playerScores[i] = scores[i][j];
            }
            // 将每个队员的得分降序排序
            Arrays.sort(playerScores, (a, b) -> b - a);
            players.put(j, playerScores);
        }
        StringJoiner sj = new StringJoiner(",");
        // 按总分降序排列，如果总分相同，则按最高分降序排列
        players.entrySet().stream()
                .sorted((a, b) -> {
                    Integer[] playerA = a.getValue();
                    Integer[] playerB = b.getValue();
                    for (int i = 0; i < m; i++) {
                        if (playerA[i] != playerB[i]) {
                            return playerB[i] - playerA[i]; // 按最高分降序排列
                        }
                    }
                    // 计算总分
                    return Stream.of(playerB).mapToInt(Integer::intValue).sum() - Stream.of(playerA).mapToInt(Integer::intValue).sum();
                }).limit(3).forEach(p -> sj.add(p.getKey() + 1 + ""));
        System.out.println(sj);
    }
}